home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / zapem.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  4.0 KB  |  138 lines

  1. 230  CLS
  2. 240  KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
  3. 250  LOCATE 7,8 ,0:PRINT "General  utility  programs"
  4. 260  COLOR 9 ,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
  5. 270  LOCATE 11,9,0:PRINT CHR$(179)+"       ZAP'EM        "+CHR$(179)
  6. 280  LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
  7. 290  COLOR 9,0:LOCATE 13,9,0:PRINT CHR$(179)+"     Version  1B     "+CHR$(179)
  8. 300  BEEP
  9. 310  LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
  10. 320  COLOR 15,0  :LOCATE 17,7,0:PRINT "FEBRUARY 03,1982   MAV-5-5-K "
  11. 330  COLOR 9,0:LOCATE 23,6,0:PRINT "Press space bar to continue..."
  12. 340  IF INKEY$ <> "" THEN GOTO 340
  13. 350  CMD$ = INKEY$
  14. 360  IF CMD$ = "" THEN GOTO 350
  15. 370  IF CMD$ = CHR$(27) THEN GOTO 390
  16. 380  IF CMD$ <> " " THEN GOTO 350
  17. 390  CLS:INPUT "DO YOU WANT INSTRUCTIONS";IN$
  18. 400  IF IN$="Y" OR IN$="YES" OR IN$="y" OR IN$="yes" THEN GOSUB 1230
  19. 410  REM TRANSFER COMMAND
  20. 420  REM **ZAP EM  ***
  21. 430  REM **A GAME*****
  22. 440  CLS
  23. 450  CLEAR ,,21000
  24. 460  INPUT "AH....YOUR NAME PLEASE ";NME$:LOCATE 15,1:INPUT "YOUR LAST SCORE ";R
  25. 470  DIM A(250),B(250)
  26. 480  FUEL=150
  27. 490  SHIP=3
  28. 500  V=7
  29. 510  T1=6
  30. 520  X=10 :Y=20
  31. 530  SCREEN 0,1
  32. 540  COLOR 7,0
  33. 550  RANDOMIZE R
  34. 560  CLS
  35. 570  COLOR 1
  36. 580  FOR I=1 TO 23:LOCATE I,1:PRINT CHR$(186):LOCATE I,38:PRINT CHR$(186):NEXT I
  37. 590  LOCATE 1,1:PRINT CHR$(201):LOCATE 1,38:PRINT CHR$(187):LOCATE 23,1:PRINT CHR$(200):LOCATE 23,38:PRINT CHR$(188)
  38. 600  FOR I=2 TO 37:LOCATE 1,I:PRINT CHR$(205):LOCATE 23,I:PRINT CHR$(205):NEXT I
  39. 610  LOCATE 4,1:PRINT CHR$(204):LOCATE 4,38:PRINT CHR$(185):FOR O=2 TO 37:LOCATE 4,O:PRINT CHR$(205):NEXT O
  40. 620  KEY(14) ON
  41. 630  ON KEY(14) GOSUB 970
  42. 640  KEY(11) ON
  43. 650  ON KEY(11) GOSUB 980
  44. 660  KEY(1) ON
  45. 670  ON KEY(1) GOSUB 990
  46. 680  REM **TRANSFER COMMAND**
  47. 690  LOCATE 2,15:PRINT SHIP
  48. 700  IF SHIP=0 OR FUEL=0 THEN FOR H1=1 TO 13:PRINT "GAME OVER":NEXT:GOTO 1330
  49. 710  LOCATE X,2:PRINT CHR$(27)
  50. 720  RR=INT(RND(2)*10)
  51. 730  IF B(RR)=0 THEN A(RR)=INT(RND(3)*16)+5:B(RR)=INT(RND(4)*7 )+30
  52. 740  FOR F=1 TO T1
  53. 750  IF A(F)=0 OR B(F)=0 THEN 810
  54. 760  IF A(F)=X AND B(F)=2 THEN BEEP:SHIP=SHIP-1:LOCATE X,2:PRINT"OUCH":FOR VV=1 TO 300:NEXT VV:LOCATE X,2:PRINT "      ":LOCATE 2,15:PRINT SHIP
  55. 770  IF A(F)=0 THEN 810
  56. 780  IF B(F)<3 THEN LOCATE A(F),B(F):PRINT " ":B(F)=0:A(F)=0:SCORE=SCORE-150:SOUND 55,1:GOTO 810
  57. 790  LOCATE A(F),B(F):PRINT " ":B(F)=B(F)-1
  58. 800  COLOR 14:LOCATE A(F),B(F):PRINT CHR$(254):COLOR 7
  59. 810  NEXT F
  60. 820  Y=Y+  M
  61. 830  IF X>21 THEN LOCATE 22,2:PRINT "   ":X=6
  62. 840  IF X<6 THEN LOCATE 5,2:PRINT "   ":X=21
  63. 850  FUEL=FUEL-1.2
  64. 860  IF FUEL<50 THEN V=31
  65. 870  COLOR 7:LOCATE 2,24:PRINT "SCORE: ";SCORE
  66. 880  COLOR V
  67. 890  IF FUEL<1 THEN COLOR 7:LOCATE 3,3:FOR U=1 TO 10:PRINT "GAME OVER":NEXT:GOTO 1330
  68. 900  RR=INT(RND(2)*T1)
  69. 910  IF B(RR)=0 THEN A(RR)=INT(RND(3)*16)+5:B(RR)=INT(RND(4)*7 )+30:IF A(RR)<6 THEN A(RR)=7
  70. 920  IF A(RR)=0 THEN A(RR)=INT(RND(3)*16)+5:B(RR)=INT(RND(4)*7 )+30:IF A(RR)<6 THEN A(RR)=7
  71. 930  LOCATE 2,3:PRINT"FUEL: ";INT(FUEL)
  72. 940  LOCATE X,2:PRINT CHR$(27)
  73. 950  COLOR 7
  74. 960  GOTO 620
  75. 970  GOSUB 1010:X=X+1        :GOTO 680
  76. 980  GOSUB 1010:X=X-1        :GOTO 680
  77. 990  GOSUB 1050
  78. 1000  GOTO 620
  79. 1010  IF X>22 THEN X=2
  80. 1020  IF X<2 THEN X=22
  81. 1030  LOCATE X,2:PRINT" "
  82. 1040  RETURN
  83. 1050  LOCATE X,2:PRINT CHR$(27)
  84. 1060  COLOR 4
  85. 1070  FOR Z=1 TO T1
  86. 1080  IF X=A(Z) THEN 1120
  87. 1090  NEXT Z
  88. 1100  FOR CC=3 TO 24:LOCATE X,CC:PRINT "-":LOCATE X,CC:PRINT " ":NEXT CC
  89. 1110  COLOR 7:GOTO 620
  90. 1120  FOR LL=3 TO 24
  91. 1130  LOCATE X,LL:PRINT "-"
  92. 1140  IF LL=B(Z) THEN LOCATE X,LL:PRINT "*":GOSUB 1190:LOCATE X,LL:PRINT " ":A(Z)=0:B(LL)=0:SCORE=SCORE+100:GOTO 680
  93. 1150  LOCATE X,LL:PRINT " "
  94. 1160  NEXT LL
  95. 1170  COLOR 7
  96. 1180  GOTO 620
  97. 1190  FOR OO=300 TO 315
  98. 1200  SOUND OO   ,0.21
  99. 1210          NEXT OO
  100. 1220  RETURN
  101. 1230  CLS
  102. 1240  LOCATE 25,1:PRINT"Press any key to start game..."
  103. 1250  PRINT"               Zap'em"
  104. 1260  PRINT:PRINT"  You are the reverse arrow (It is      supposed to be a fighter with rakish    inverse swept wings)."
  105. 1270  PRINT:PRINT"  Your mission is to zap the invading   Horde ships in your path. The Horde is  a huge mass of drone ships that is try- ing to get past the imperial fleet and  into the rich homeworld systems."
  106. 1280  PRINT:PRINT"  The Horde ships are unpredictable.    Some are Ghost ships. These will take   more than one hit or will vanish upon   being hit without a score increment."
  107. 1290  PRINT:PRINT"  The controls are simple: up and down  cursor control arrow keys for up and    down movement. F1 to fire."
  108. 1300  PRINT:PRINT"  Good hunting"
  109. 1310  X$=INPUT$(1):IF X$<>"" THEN RETURN
  110. 1320  GOTO 1310
  111. 1330  '**HIGH SCORE**
  112. 1340  CLS
  113. 1350  LOCATE 2,2:PRINT"HIGH SCORES...."
  114. 1360  LOCATE 3,1:PRINT"_______________________________________"
  115. 1370  LOCATE 5,1
  116. 1380  DIM NME$(50),SCORE(50)
  117. 1390  OPEN "METEOR.DAT" FOR INPUT AS #1
  118. 1400  FOR I=1 TO 10
  119. 1410  INPUT #1,NME$(I),SCORE(I)
  120. 1420  PRINT NME$(I),SCORE(I)
  121. 1430  NEXT I
  122. 1440  NME$(10)=NME$:SCORE(10)=SCORE
  123. 1450  CLOSE
  124. 1460  IF SCORE(10)<SCORE(9) GOTO 1520
  125. 1470  FOR I=1 TO 10
  126. 1480  IF SCORE(I)<SCORE(I+1) THEN SWAP SCORE(I),SCORE(I+1):SWAP NME$(I),NME$(I+1):F=1
  127. 1490  NEXT I:IF F=1 THEN F=0:GOTO 1470
  128. 1500  OPEN "METEOR.DAT" FOR OUTPUT AS #1
  129. 1510  FOR I=1 TO 10:PRINT#1,NME$(I);",";SCORE(I):NEXT I:CLOSE
  130. 1520  LOCATE 5,1
  131. 1530  FOR I=1 TO 9
  132. 1540  PRINT NME$(I),SCORE(I)
  133. 1550  NEXT I
  134. 1560  LOCATE 17,1:PRINT "YOUR SCORE, ";NME$;", WAS";SCORE
  135. 1570  LOCATE 22,1:INPUT "PLAY AGAIN (Y OR N)";PLY$
  136. 1580  IF PLY$="Y" THEN 420
  137. 1590  END
  138.